Amazon Managed GrafanaへAuth0を使ってSAMLログインしてみた
こんにちは。CX事業本部 IoT事業部のakkyです。
AWS IoT SitewiseにはSiteWise Monitorという可視化ツールが付属しており、簡単に使用することができますが、表示するグラフをあまりカスタマイズできないため、要件によっては使用が難しいことがあるかもしれません。 そこで、SiteWiseはデータストアとしてのみ使い、可視化ツールにはGrafanaを使用すると、さまざまな種類のグラフツールが使用できて、プラグインによる拡張も可能となります。
AWSにはAmazon Managed Grafanaというのマネージドサービスが存在するのでこれを使用するのが簡単です。しかし、ログイン方式としてはAWS SSOとSAMLのみが選択可能です。AWS SSOはOrganizationsが有効な環境でのみ使用できるため、SAMLを使用することになります。公式ドキュメントには、Azure ADやCyberArk、Okta、OneLogin、Ping Identityが挙げられていますが、SAML IdPに対応しているほかのサービスを使用することもできます。今回はAuth0をSAML IdPとして使用し、Grafanaへのログインに使用できるよう設定してみました。
SAML IdPにAzure ADを使用する方法は、以下の記事をご覧ください。
非Orgnizations環境のAWSアカウントからSAML認証を使ってAmazon Managed Grafanaをセットアップしてみる
Amazon Managed Grafanaワークスペースの作成
Amazon Managed GrafanaのWebコンソールから「ワークスペースを作成」をクリックし、新しいワークスペースを作成します。認証アクセスにはSecurity Assertion Markup Language(SAML)を選択します。
お好みのデータソースなどを選択し、ワークスペースの作成が完了したら、ワークスペースの設定を開き、SAMLの「セットアップを完了にする」を開き、SAMLの設定内容を確認します。
上部に表示されている3つのURL、サービスプロバイダー識別子(エンティティID)、サービスプロバイダーのログインURL、サービスプロバイダーの応答URL(Assertion Consumer Service URL)をAuth0の設定に使用しますので、この画面を開いたままにしておきます。
Auth0の設定
新しいテナントを作成したら、ApplicationsからCreate Applicationをクリックし、新しいアプリケーションを追加します。
application typeはRegular Web Applicationsを選択します。
AddonsからSAML2 WEB APPをクリックすると、以下の画面が開きますので、Identity Provider Metadataをダウンロードしてください。 上部のSettingsをクリックすると、詳細設定画面になります。
Application Callback URLには、Grafanaのサービスプロバイダーの応答URL(Assertion Consumer Service URL)を入力します。
Settingsには、以下の内容を入力します。
{ "audience": "<サービスプロバイダー識別子(エンティティID>", "destination": "<サービスプロバイダーの応答URL(Assertion Consumer Service URL)>", "mappings": { "email": "email", "nickname": "nickname" }, "createUpnClaim": false, "passthroughClaimsWithNoMapping": false, "mapUnknownClaimsAsIs": false }
Saveをクリックして設定を完了してください。その他、ユーザーやログインソースの設定を済ませてください。
Amazon Managed Grafanaの設定
Grafanaの設定画面に戻って、ステップ2から、先ほどAuth0ダウンロードしたIdentity Provider MetadataのXMLファイルをアップロードします。
ステップ3では、以下のように値を入力してください。追加設定-オプションも開いて入力してください。
- アサーション属性ロール:email
- 管理者ロールの値:管理者として扱いたいユーザーのメールアドレス
- アサーション属性名:nickname
- アサーション属性のログイン:email
- アサーション属性Eメール:email
- ログインの有効期間(分単位):1以上の値
SAML設定を保存をクリックしたら、設定完了です。
GrafanaワークスペースURLを開き、ログインをクリックするとAuth0のログイン画面が表示されます。
おわりに
Amazon Managed GrafanaのログインにAuth0を使用する方法をご紹介しました。Auth0はフリープランもあるので手軽に使用することができます。
今回はSitewiseについてはご紹介できませんでしたが、次回以降ご紹介していきたいと思います。